/* 

var box=250;
alert(box);

var box=070;		//八进制，前导为0，按照十进制输出时56
alert(box);

var box=079;		//无效八进制，自动去掉前导0，输出79  （9超过了8    八进制最大数7）
alert(box);
 
var box=8;		//无效八进制，自动去掉前导0，输出79  （9超过了8    八进制最大数7）
alert(box);
 
var box=0xA;		//十六进制
alert(box);

var box=0x1f;		//十六进制
alert(box);
 
var box=3.8;		//浮点类型   03.8（报错）  3.80（自动去掉后导0）.8（有效，不推荐）
alert(box);
 
var box=8.0;		//自动转为整形     8.（有效）
alert(box);
 
var box=4.12e3;		//科学计数法    4.12*10^3
alert(box);
 
var box=4.12e-3;		//科学计数法    4.12*0.1^3
alert(box);
 
alert(0.1+0.2);		//输出0.3000000000004   判断尤其是精确判断不要用浮点型
 
alert(Number.MIN_VALUE);    //最小值
alert(Number.MAX_VALUE);		//最大值
 
//var box=8.12e5
//var box=100e10;
//var box=100e100;
// var box=100e1000;		//超过范围  正无穷   Infinity
var box=-100e1000;		//超过范围  负无穷   -Infinity
alert(box);
 
alert(Number.POSITIVE_INFINITY);
alert(Number.NEGATIVE_INFINITY);
 
//var box=100e10;
var box=100e1000;
alert(isFinite(box));  //是否超过范围   超过返回false   没超过返回true
 
//var box = 0/0;   //NAN
// var box = 0/6;   //0
//var box = 1/0;   //Infinity   比0大的数除以0，则会得到无穷大，所以 js 用 Infinity 来显示出来
//var box = 1/0*0;   //NAN
//var box = 100e1000*0;   //NAN     正无穷乘以0也是NAN
//alert(box);
 
alert(Number.NaN);   //NaN
 
alert(NaN);   //NaN
if(NaN == Number.NaN){      //不一样
	alert('一样');
}else{
	alert('不一样');
}

if(NaN === Number.NaN){     //不一样
	alert('一样');
}else{
	alert('不一样');
}
 
 
alert(typeof NaN);     //number
alert(typeof Number.NaN);    //number

if(NaN === NaN){     //不一样
	alert('一样');
}else{
	alert('不一样');
}

//NaN ，即非数值（Not a Number）是一个特殊的数值，
//这个数值用于表示一个本来要返回数值的操作数未返回数值的情况（这样就不会抛出错误了）。
//任何与NaN进行运算的结果均会为NaN,NaN与自身不相等（NaN不与任何值相等）。
 
var box=NaN+1;
alert(box); 

//var box=0/12;    //不是NaN ,isNaN()返回false
var box=0/0;		//是NaN ,isNaN()返回true
alert(isNaN(box));

//alert(isNaN(NaN));		//true;
//alert(isNaN(25));		//false;25是一个数值
//alert(isNaN('25'));		//false;'25'是一个字符串数值可以转成数值
//alert(isNaN('Lee'));		//true;     'Lee'不能转换成数值
//alert(isNaN(true));		//false  true可以转成1

//var box={}; 			//alert(isNaN(box));		//true
//如果对象的toString方法能够返回数值，那么就不是NaN了
var box={
	toString : function(){
		return 123;
	}
};
alert(isNaN(box));		//false

var box={
	toString : function(){
		return 'Lee';
	}
};
alert(isNaN(box));		//true

var box={
	toString : function(){
		return '123';
	}
};
alert(isNaN(box));		//false

//alert(Number(true));		//1;   Boolean类型的true和false分别转成1和0
//alert(Number(25));			//25; 数值型直接返回
//alert(Number(null));			//0; 空对象返回0
//alert(Number(undefined));//NaN;  undefined返回NaN;
alert(Number('56'));			//56
alert(Number('lee'));			//NaN

//alert(Number(0456));		//302;   加上0表示这是一个8进制的数。所以8进制的456=4*8*8+5*8+6=302
//alert(Number(0459));		//459    十进制的话会去掉前导0
//alert(Number('0456'));		//456    字符串的话会去掉前导0，不会出现八进制
//alert(Number('08.90'));		//8.9     如果字符串是浮点类型，则直接去掉前导0和后导0
//alert(Number(''));		//0     如果字符串是空，则直接返回0
//alert(Number('Lee123'));   //NaN
//alert(Number('123Lee123'));   //NaN   不是数值字符串   浮点数值字符串  空字符串的字符串    直接返回NaN

var box={};
alert(Number(box));		//NaN

var box={
	toString : function(){
		return 123;
	}
};
alert(Number(box));		//123

var box={
	toString : function(){
		return '456';
	}
};
alert(Number(box));		//456

var box={
	toString : function(){
		return null;
	}
};
alert(Number(box));		//0

//parseInt();     //只能转换字符串至数值  
//alert(parseInt(null));		//NaN
//alert(parseInt(undefined));		//NaN
//alert(parseInt(true));		//NaN
//alert(parseInt(12));		//12
//alert(parseInt('456Lee'));		//456
//alert(parseInt('lee456Lee'));		//NaN  如果第一个不是数值就会返回NaN
//alert(parseInt('12lee456Lee'));		//12
//alert(parseInt('56.12'));		//56     小数点不是数值会被去掉
//alert(parseInt(''));		//NaN
//alert(parseInt('0xA'));		//10   十六进制
//alert(parseInt('070'));		//70  
//alert(parseInt(070));		//56    八进制
//alert(parseInt('0xALee'));		//10   十六进制     Lee被自动过滤掉

//alert(parseInt('0x1F'));			//31   十六进制
//alert(parseInt('0x1f'));			//31    十六进制
//alert(parseInt('0x1f',16));			//31    十六进制
//alert(parseInt('1f',16));			//31    十六进制
//alert(parseInt('1f'));			//1    十进制
//alert(parseInt('10001010010',2));			//1106    二进制
alert(parseInt('70',8));			//56    八进制



*/

alert(parseFloat('123LEE'));			//123   去掉不是数值的部分
alert(parseFloat('0xA'));					//0,不认识十六进制
alert(parseFloat('123.4.5'));			//123.4    只认识一个小数点
alert(parseFloat('0123.400'));			//123.4    去掉前后导0
alert(parseFloat('1.234e7'));			//12340000    把科学计数法转成普通数值



 




 

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 